module.exports = {
    // namespaced: true,
    state: {
        todos: [{
            id: 1,
            done: false
        }, {
            id: 2,
            done: true
        }, {
            id: 3,
            done: true
        }],
        isFold: false,
        name: "hoho",
        age: 88
    },

    // 全局公用getters，唯一不能重名，用于对state做一些过滤，操作
    getters: {
        getTodoById(state, getters) {
            console.log("getters----------->",state)
            return function (id) {
                return state.todos.find(todo => todo.id === id)
            }
        },
        anotherGetter(state) {
            return "anotherGetter-getters"
        }
    },

    // mutations 和 actions 可以存在于多个module 中，就是可以重名，但是只要一触发就会全部都触发一遍

    // 同步函数，commit触发
    mutations: {
        changeSlideState(state, name) {
            // 变更状态
            state.name = state.name + "----changeSlideState"
        },
        changeAge(state) {
            state.age += "------888"
        },
        mutationsFn(state) {

            console.log("home---------mutationsFn",state)
        }
    },

    // 异步更改状态，通过dispatch触发
    actions: {

        // 第一个参数是 context，但是可以直接取 commit 出来
        actionsIncrement({commit}, payload) {
            setTimeout(() => {
                // 这里触发的是 mutation，但是外部是通过 dispatch 触发 actions 的
                commit('changeAge')
            },5000)
           
        },
        actionFn(state) {
            console.log("home------actionFn",state)
        }
    }





}